home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / Dev / Amiga-E / E_v3.2a_extras / PdSrc / threads / Thread.e < prev    next >
Text File  |  1995-04-11  |  1KB  |  45 lines

  1. -> thread.e - the very basic way to setup a thread under v37+
  2.  
  3. MODULE 'dos/dos'
  4. MODULE 'dos/dostags'
  5. MODULE 'dos/dosextens'
  6. MODULE 'utility/tagitem'
  7.  
  8. MODULE '*modules/geta4'
  9.  
  10. PROC main()
  11.   -> pointer to the thread process
  12.   DEF mythread:PTR TO process
  13.  
  14.   -> store the global data pointer (a4) so the thread can later get this.
  15.   -> IMPORTANT: this must be done before any thread does a geta4().
  16.   -> to be safe, just do it at the begin of main(), as done here.
  17.   storea4()
  18.  
  19.   -> create a thread process
  20.   IF mythread:=CreateNewProc(
  21.     [
  22.     NP_ENTRY,{thread}, -> where the thread process begins
  23.     NP_NAME,'MyThread', -> the thread process name
  24.     TAG_DONE
  25.     ])
  26.  
  27.   ENDIF
  28.   Delay(50)
  29.  
  30.   -> IMPORTANT: the main process may never end when threads are running.
  31.   -> In this small example, we simply wait a while, which is NOT RIGHT!!
  32.   Delay(50)
  33.  
  34. ENDPROC
  35.  
  36. PROC thread()
  37.   -> get the global data pointer, previously stored by the main process.
  38.   -> IMPORTANT: do this before using global variables or functioncalls.
  39.   geta4()
  40.  
  41.   PrintF('Hello, it\as me, your newly created thread.\n')
  42.   PrintF('I stopped now\n')
  43.  
  44. ENDPROC
  45.